//#include "List.h"
//
//void STInit(ST* ps)
//{
//	ps->arr = NULL;
//	ps->capacity = ps->top = 0;
//}
//
//void  StackPush(ST* ps,STDatatype x)
//{
//	assert(ps);
//	if (ps->capacity == ps->top)
//	{
//		int newCapacity = ps->capacity == 0 ? sizeof(STDatatype) : 2 * ps->capacity;
//		STDatatype* tmp = (STDatatype*)realloc(ps->arr,sizeof(STDatatype) * newCapacity);
//		if (tmp == NULL)
//		{
//			perror("realloc");
//			exit(1);
//		}
//		ps->arr = tmp;
//		ps->capacity = newCapacity;
//	}
//	ps->arr[ps->top] = x;
//	ps->top++;
//}
//
//STDatatype StackTop(ST* ps)
//{
//	assert(ps);
//	return ps->arr[ps->top - 1];
//}
//
//void StackDstory(ST* ps)
//{
//	assert(ps);
//	free(ps->arr);
//	ps->arr = NULL;
//	ps->capacity = ps->top = 0;
//}
//
//int StackEmpty(ST* ps)
//{
//	return ps->top == 0;
//}
//
//void StackPop(ST* ps)
//{
//	assert(!StackEmpty(ps));
//	ps->top--;
//}
//
//int StackSize(ST* ps)
//{
//	assert(ps);
//	return ps->top;
//}
//#include "List.h"
